MAIリファレンスカード ・−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−・ |エラーメッセージ表::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | |番号 エラーメッセージ | | | 1 変数及びラベルが正しくない | |コ| 2 変数及びラペルが多すぎる | |ン| 3 ラベルの重複 | |パ| 4 ラベルの未定義 | |イ| 5 シンタックスエラー | |ル| 6 IF,DO,REPEAT,WHILEの構造が正しくない。 | |時| コンパイル後に出力される | | | 7 オブジェクトのメモリオーバー | |−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | |Illegal function call ライブラリ(width,consoleなど)のパラメータ | | | がおかしい | |実|その他のメッセージ 例えばwidth 100, 0などBASICのエラーメッセージが | |行| 出力された場合は、 | |時| BASICのエラーメッセージに準ずる | | |*実行時のエラーでは暴走する場合もあるので注意すること | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |MAIの起動方法::モニタより::GA400[RET]::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |MAIのコマンド(エディタコマンド)::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |コンパイル・実行関係 | |C[RET] ソースプログラムのコンパイル(リスト付) | |Z[RET] ソースプログラムのコンパイル(リスト無) | |R[RET]/又はf−5 オブジェクトプログラムの実行 | |Jnnnn[RET] nnnn(nは4桁の16進数)ヘジャンプする。 | |M[RET] モニタへジャンプする。MAIに戻るにはCTRL-B | |J8000J BASICへの復帰 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |入出力関係::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |S[RET]ファイル名[RET] 30文字以内のファイル名をつけてソースプログラムを | | カセットにセーブする。 | |L[RET] カセットよりソースプログラムをロードする。 | | ただしテキストエンドよりロードされるので、 | | &でテキストをクリアすること。 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ポインタ制御関係::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |&[RET] | テキストをクリアする | |/[RET] | 現在のLPの位置を表示する | |,[RET] | テキストエリアのトップアドレスを表示する | |.[RET] | テキストエリアのエンドアドレスを表示する | |Pn[RET] | LPを nに移動する。ただしnが省略された場合は | | | テキストエンドに設定される。 | |Tn[RET] | テキストトップからn行目よりCRTにタイプする。 | | | ただしnが省略された場合は、テキストトップから | | | タイプする | |Tp[RET] | LPからテキストをCRTにタイプする | |On[RET] | プリンタにテキストが出力される他は、Tコマンドと | |Op[RET] | 同じ | |I[RET] | LPとLP-Iの間にテキストをインサートする | | | インサートモードから抜けるには、STOPキー | | | もしくはリターンのみを入力。 | |D[RET] | LPの示す行を削除する。 | |Dn[RET] | テキストトップからn行目を削除する。 | |Kn[RET] | LPからかぞえてn行目を削除する。 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ラベルサーチ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |FString LPからStringをサーチする。 | | 見つかればその行を出力。そうでなければLPをテキストエンドに | | 設定してコマンドレベルに戻る。 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |プログラム::::::::::::::::1つ以上の行から成る::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |行::::::::::::::::::::::::ラベル・コメント・式文から成る::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |定数::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |10進定数 -32768〜+32767 | |16進定数 $0000〜$FFFF | |文字定数 "一文字" | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |変数::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |変数名 英字又は数字から成る6文字以内の文字列。 | | 但し一文 宇目は英字であること。 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |単純変数|変数名::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |間接変数|2byte形 |変数名(式) | | | |変数の+(2X式)をアドレスとす2byteの変数 | | | |(変数名:式) | | |1byte形 |変数の値+式をアドレスする1byteの変数 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ラベル::::::::::::::::::::行の先頭につきGOTO文、GOSUB文の飛び先となる:::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ラベル名 |英字又は数字から成る6文字以内の文字列。但し一文宇目は英字 | | |であること | |パラメータ |ラベル名LP1,P2……Pi) i≦16 Piは変数の形をとり、パラメータを | |の受け渡し|受け渡すことができる | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |単項演算子::(関数)::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |+ 絶対値 | |- 補数 | |' 乱数 | |^ ポート入力 | |] 平方根 | |[+ インクリメント | |[- デクリメント | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |二項演算子::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |算術 |+ 加算 | | |- 減算 | | |* 乗算 | | |/ 除算 | | |% 余り | |論理 |& 倫理積 | | |, 論理和 | | |! 排他的倫理和 | |関係 |= 等しい | | |<> 等しくない | | |> 大きい | | |< 小さい | | |<= 小さい又は等しい ≦ | | |>= 大ぎい又は等しい ≧ | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |式::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |〈式〉::=〈項〉|〈項〉〈二項演算子〉〈項〉 | |〈項〉::=〈定数〉|〈変数〉|〈サブルーチン〉|〈(式)〉|〈単項演算子〉 | | 〈項〉 | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |実行文::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |制御構造::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |if |;=式 |式の値が真(-1なら次のステートメントを | |else |: |実行する、さもなければelse節(:と;の間)の処 | |end |; |理をする。else節の有無は自由だがend(;)は | | | |必ずなくてはならない | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |repeat |@ |式の値が真(-1となるまで繰返す | |until |@=式 | | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |while |&=式 |式の値が真(-1)の間繰返す | |wend |& | | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |goto |#=l |lヘジャンプする。また“=”は省略できる。 | | | |lはラベル又は16進アドレス | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |gosub |!=l |lをサブルーチンとしてコールする。 | | | |また“=”は省略できる。 | | | |@lはラベル又は16進アドレス | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |return | ] |サブルーチンからリターンする | | | |関数として値を返すときはreturn直前の計算 | | | |結果を返す | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |call |>=アドレス |機械語サブルーチン | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |command |% |算術演算式中以外ならどこにおいてもよく、 | | | |%から行の終わりをコメットする | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |out |^式1,式2 |式1のポートに式2の値を出力する | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |Check |¥ |キーをチェックする。 | | | |STOPもしくはESCが有効 | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |end |− |プログラムを終了し、$B184からの2byteの | | | |メモリ内容のアドレスにジャンプ。 | | | |通常はMAIのホットスタートにでる | |−−−−+−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−| |Store |=変数,C1,C2, |変数の示すアドレスから、C1を16進データ($は不要) | | |C3……,Ci |とみなしてメモリに書き込んでいく。 | | |(iは任意の定数| | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |入出力関係::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |print left |?=式 |式を値を16進左づめで出力 | |print right |?)=式 |式を値を16進右づめ6桁で出力 | |print hex 4 |??=式 |式を値を16進桁4桁で出力 | |print hex 2 |?$=式 |式の値の下位1byteを10進2桁で出力 | |print Charactor |$=式 |式の値の下位1byteをASCIIコードで出力 | |tab |.X |tab(X)と同じ | |locate |.X,Y |Locate X,Yと同じ | |CR/LF 出力 |/ |改行する | |print string |"string"|"でくぐられた文字列の出力、$b072からの | | | |2byteの$51,$02を$5DB0に変更 | | | |することにより二次のカーソルキャラクタが | | | |使用できる 年→ 月← 日↑ 時↓ | |input |変数=? |入力した数字を値とする | |inkey |変数=\ |一文字入力しそのASCIIコードの値をとる | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |グラフィックサポートルーチン::::::::::::::::::::::::::::::::::::::::::::::| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |MAIはグラフィックコマントを持っていないので、次の様なリンク用ルーチンを用いて | |サブルーチンパッケージ内のグラフィックルーチンを呼び出す。 | | リンク用ルーチン | | | | WD >=$B24A ]%WIDTH | | CN >=$B258 ]%CONSOLE | | CL >=$B266 ]%COLOR | | PS >=$B290 ]%PSET | | PR >=$B2A3 ]%PRESET | | LC >=$B2CB ]%LOCATE | | LP >=$B2F5 ]%LINE | | PUT >=$B305 ]%PUT | | MUS >=$B331 ]%MUSIC | | SCR(SR1,SR2,SR3,SR4,SR5、SR6) | | #=SRO[SR1*256+SR2,SR3*256+SR4,SR5*256+SR6 | | SR0>=$B367 ] % SCROLL | |以上のルーチンの必要なもの(プログラム中で使用するものだけ)をメインプログラムと | |リンク(アペンド)する。 | |またパラメータは、$FF40からパラメータ1つにつき2byte、16個分用意さ | |れているエリアに順に書き込まれる | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ラベル | 意 味 | 内 容 | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |wd |width |!WD(X,Y) | | | |N-BASICのWIDTHと同じ | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |cn |console |!CN(A,B,C,D) | | | |N-BASICのCONSOLEと同じ | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |cl |color |!CL(A,B,C) | | | |N-BASICのCOLORと同じ | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−− |ps |pset |!PS(X,Y) | | | |X,Y座標の位置にドットをセットする | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |pr |preset |!PR(X,Y) | | | |X,Y座標の位置にドットをリセットする | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |lc |Line |!LC(X1,Y1,X2,Y2,Chr,opt) | | | |(X1.Y1)から(X2,Y2)までChrコードで線を引く | | | | op=0でLine | | | | =1でBox | | | | =2でBox fill | |−−−−−+−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−| |lp |Line |!LP(X1,Y1,X2,Y2,func,opt) | | | |(X1,Y1)から(X2,Y2)までfuncで線を引く | | | | func=1でpset | | | | Oでpreset optは上記と同様 | |−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |ラベル | 内 容 | |−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |dut |!DUT(n,func,X,Y,D1,D2,……,Dn)n≦12 | |(パターンの |n個のデータを(X,Y)座標から横方向に出力する | | 出力) | ・---------------------------------------・ | | |func| \カラー| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | | | |-------+---+---+---+---+---+---+---+---| | | | |キャラクタ |$08|$28|$48|$68|$88|$A8|$C8|$E8| | | | |グラフィック|$18|$38|$58|$78|$98|$B8|$D8|$F8| | | | ・---------------------------------------・ | | |グラフィックの場合、1キャラクタが ・-------------・ | | |右のように各ビットと対応する。 |bit 0 | 4 | | | | |------+------| | | | | 1 | 5 | | | | |------+------| | | | | 2 | 6 | | | | |------+------| | | | | 3 | 7 | | | | ・-------------・ | |−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |mus |!MUS(Tone,Length,Tune) | |(音楽出力)|Toneの高さの音をLengthの時間だけ出力する | | |Toneで音程を決める | | |(Tone=0で休符) | |−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | scr |!SR(X1,Y1,Y1,X2,Y2,Dir,n) | | (スクロール) |(X1,Y1)から(X2,Y2)を対角線とする四角形内Dir方向にn個分 | | |だけスクロールする | | |Dir 1……上 | | | 2……下 | | | 3……左 | | | 4……右 | | |注)アトリビュートエリアには何も操作をしない | ・−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−・